//server.go
package main

import (
	"fmt"
	"net"
	"sync"
	"unpack/dealCode"
)

func process(conn net.Conn) {
	defer conn.Close()
	for {
		buf, err := dealCode.Decode(conn)
		if err != nil {
			fmt.Printf("err-->%v", err)
			return
		}
		fmt.Println(string(buf))
	}

	wg.Done()
}

var wg sync.WaitGroup

func main() {
	// 1. 监听端口
	listener, err := net.Listen("tcp", "127.0.0.1:9090")
	if err != nil {
		fmt.Printf("监听失败,%v\n", err)
		return
	}
	defer listener.Close()
	// 2. 循环监听建立的连接
	for {
		conn, err := listener.Accept()
		if err != nil {
			fmt.Printf("监听连接失败%v\n", err)
			continue
		}
		// 3. 处理连接
		wg.Add(1)
		go process(conn)
	}
	wg.Wait()
}
